#ifndef SDLUTILITAIRES_H_INCLUDED
#define SDLUTILITAIRES_H_INCLUDED

#include <SDL/SDL.h>
#include "Jeu.h"

/**
 @struct sdlJeu
 @brief est une structure du Jeu
 @param surface_ecran un pointeur sur l'ecran de type  SDL_Surface  ;
  @param surface_case un pointeur de type  SDL_Surface sur une image   ;
  @param image_fond un pointeur de type  SDL_Surface sur une image ;
  @param efface_lettre un pointeur de type  SDL_Surface sur une image ;
  @param surface_valider un pointeur de type  SDL_Surface  sur  une image ;
  @param surface_annuler un pointeur de type  SDL_Surface  sur  une image ;
  @param surface_vortex un pointeur de type  SDL_Surface  sur  une image ;
  @param surface_milieu un pointeur de type  SDL_Surface  sur  une image ;
  @param surface_avatar un pointeur de type  SDL_Surface  sur  une image ;
  @param surface_texte_nom_joueur un pointeur de type  SDL_Surface  sur un texte;
  @param surface_texte_score un pointeur de type  SDL_Surface  sur  une image ;
  @param surface_lettre[26] un pointeur de type  SDL_Surface  sur  une image ;
  @param surface_efface un pointeur de type  SDL_Surface  sur  une image ;
  @param surface_erreur un pointeur de type  SDL_Surface  sur  une image ;
  @param surface_chrono un pointeur de type  SDL_Surface  sur  un texte ;
  @param surface_passe_tour un pointeur de type  SDL_Surface  sur  une image ;
  @param surface_change_lettres un pointeur de type  SDL_Surface  sur  une image ;
       */
typedef struct
{
	Jeu jeu;
	SDL_Surface* surface_ecran;
	SDL_Surface* surface_case;
	SDL_Surface* image_fond;
	SDL_Surface* efface_lettre;
	SDL_Surface* surface_valider;
	SDL_Surface* surface_annuler;
	SDL_Surface * surface_vortex;
	SDL_Surface * surface_milieu;
	SDL_Surface ** surface_avatar;
	SDL_Surface ** surface_texte_nom_joueur;
	SDL_Surface ** surface_texte_score;
	SDL_Surface * surface_lettre[26];
	SDL_Surface * surface_efface;
	SDL_Surface * surface_erreur;
	SDL_Surface * surface_chrono;
	SDL_Surface * surface_passe_tour;
	SDL_Surface * surface_change_lettres;
} sdlJeu;

/**
    @fn SDL_load_image(const char* filename )
    @param filename [IN] un nom  d'un fichier

*/


SDL_Surface *SDL_load_image(const char* filename );


/**
    @fn SDL_apply_surface( SDL_Surface* source, SDL_Surface* destination, int x, int y )
    @brief  Procédure permettant d'appliquer une surface \e source sur \e destination
    @param  source [IN-OUT] pointeur sur une SDL_Surface
    @param  destination [IN-OUT] pointeur sur une SDL_Surface
    @param  source [IN] pointeur sur une SDL_Surface
    @param  x  [IN] un entier définissant l'abscisse
    @param  y [IN] un entier définissant l'ordonnée

*/
void SDL_apply_surface( SDL_Surface* source, SDL_Surface* destination, int x, int y );
/**
    @fn chargementErreur(sdlJeu * pSdlJeu, int erreur)
    @brief  Procédure permettant de charger une surface erreur selon l'entier passé en paramètre
    @param  pSdlJeu [IN-OUT] pointeur  sur Jeu
    @param  erreur [IN] un entier
*/
void chargementErreur(sdlJeu * pSdlJeu, const int erreur);


#endif

